package com.sgj.filterchain.test2;

/**
 * 责任链模式
 * @Author: Guoji Shen
 * @Date: 2021/11/19 10:33
 */
public class Client {
    public static void main(String[] args) {
        /**
         * 到这里有人会说代码跟前面的是一样的，这点没错，执行代码是一样的，但是我们优化了整个结构！
         * 看到这里大家心中应该有一个疑惑，我们上边两次执行代码其实都是我们已经直到了需要申请多少钱的情况下直接用if-else if这样的模版进行申请的，
         * 这里根本就没有构成一个责任链中的链条模式，所以我们的代码还需要进行更多变化，于是我们在上边优化代码的结构下进行链式的构建
         */

        // 领导们
        Leader500 leader500 = new Leader500();
        Leader1000 leader1000 = new Leader1000();
        Leader1500 leader1500 = new Leader1500();
        Leader2000 leader2000 = new Leader2000();

        // 申请人
        Person person = new Person();
        person.setMoney(2000);

        if (person.getMoney() <= 500) {
            leader500.handler(person);
        } else if (person.getMoney() <= 1000) {
            leader1000.handler(person);
        } else if (person.getMoney() <= 1500) {
            leader1500.handler(person);
        } else if (person.getMoney() <= 2000) {
            leader2000.handler(person);
        }
    }
}